Map হল একটি জাভাস্ক্রিপ্ট ডেটা স্ট্রাকচার, যা key-value পেয়ার হিসেবে উপাদান সংরক্ষণ করে। এটি সাধারণত অবজেক্টের মত কাজ করে, কিন্তু কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে:
- অবজেক্টের কীগুলো সাধারণত স্ট্রিং বা সিম্বল হতে পারে, কিন্তু Map-এর কীগুলো যেকোনো ডেটা টাইপ হতে পারে, যেমন অবজেক্ট, ফাংশন, সংখ্যা ইত্যাদি।
- Map-এর কীগুলোর ইনসারশন অর্ডার বজায় থাকে, অর্থাৎ আপনি যে অর্ডারে উপাদানগুলো যোগ করবেন, সেগুলো সেই অর্ডারেই রিটার্ন হবে।
- Map-এর সাথে আরও অনেক শক্তিশালী মেথড রয়েছে, যা অবজেক্টের তুলনায় বেশি কার্যকরী।
Map এর বৈশিষ্ট্য
- Key-value pair ধারণ করে।
- কীগুলো যেকোনো ডেটা টাইপ হতে পারে।
- ইনসারশন অর্ডার বজায় রাখে।
- size প্রপার্টি দ্বারা Map-এর মোট উপাদান সংখ্যা জানা যায়।
- Map একটি ইটারেবল অবজেক্ট, যা
for...ofলুপের মাধ্যমে পুনরাবৃত্তি করা যায়।
Map তৈরি করা
Map তৈরি করার জন্য new Map() ব্যবহার করতে হয়। আপনি একটি খালি Map বা কোনো প্রাথমিক key-value pair সহ Map তৈরি করতে পারেন।
উদাহরণ: খালি Map তৈরি
const map = new Map();
উদাহরণ: প্রাথমিক key-value pair সহ Map তৈরি
const map = new Map([
['name', 'Alice'],
['age', 25],
['city', 'New York']
]);
console.log(map);
Map এর সাথে কাজ করা
set(key, value)
এই মেথডটি একটি নতুন key-value pair Map-এ যোগ করে। যদি আগের থেকেই কীগুলো থাকে, তবে তাদের মান পরিবর্তন হয়ে যায়।
const map = new Map();
map.set('name', 'Bob');
map.set('age', 30);
console.log(map.get('name')); // আউটপুট: Bob
console.log(map.get('age')); // আউটপুট: 30
get(key)
এই মেথডটি একটি নির্দিষ্ট কী-এর মান রিটার্ন করে।
console.log(map.get('name')); // আউটপুট: Bob
has(key)
এই মেথডটি পরীক্ষা করে যে, Map-এ একটি নির্দিষ্ট কী আছে কি না।
console.log(map.has('name')); // আউটপুট: true
console.log(map.has('city')); // আউটপুট: false
delete(key)
এই মেথডটি একটি নির্দিষ্ট কী এবং তার মান Map থেকে মুছে ফেলে।
map.delete('age');
console.log(map.has('age')); // আউটপুট: false
clear()
এই মেথডটি Map-এর সব উপাদান মুছে ফেলে।
map.clear();
console.log(map.size); // আউটপুট: 0
size
এই প্রপার্টি Map-এ মোট উপাদানের সংখ্যা জানায়।
console.log(map.size); // আউটপুট: 2
Map-এ ইটারেশন
Map একটি ইটারেবল অবজেক্ট, তাই আপনি এটি for...of লুপ দিয়ে পুনরাবৃত্তি করতে পারেন। আপনি Map-এর কীগুলোর, মানগুলোর, বা কীগুলোর সাথে মানগুলোর উপর ইটারেশন করতে পারবেন।
উদাহরণ: for...of লুপ ব্যবহার করে Map-এ ইটারেশন
const map = new Map([
['name', 'Alice'],
['age', 25],
['city', 'New York']
]);
for (let [key, value] of map) {
console.log(`${key}: ${value}`);
}
আউটপুট:
name: Alice
age: 25
city: New York
উদাহরণ: forEach() মেথড ব্যবহার
map.forEach((value, key) => {
console.log(`${key}: ${value}`);
});
আউটপুট:
name: Alice
age: 25
city: New York
এখানে, forEach() মেথড ব্যবহার করা হয়েছে যা key এবং value প্যারামিটার হিসেবে প্রত্যেকটি Map-এর উপাদান দিয়ে এক্সিকিউট হয়।
Map এবং Object এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Map | Object |
|---|---|---|
| কীগুলোর টাইপ | যেকোনো ডেটা টাইপ (স্ট্রিং, নম্বর, অবজেক্ট, ফাংশন) | কেবল স্ট্রিং বা সিম্বল |
| কীগুলোর অর্ডার | ইনসারশন অর্ডার বজায় থাকে | অর্ডার নির্দিষ্ট নয় |
| আকার | size প্রপার্টি | Object.keys() দিয়ে গণনা করতে হয় |
| কীগুলোর গুণগত মান | ইউনিক কীগুলো | একাধিক কীগুলো হতে পারে |
| মেথড এবং প্রপার্টি | set(), get(), has(), delete(), clear(), size | শুধুমাত্র সাধারণ অবজেক্ট অপারেশন |
এটি পরিষ্কার যে, Map ব্যবহার করা বেশি কার্যকরী যখন ডেটার সাথে কাজ করতে হয় এবং ইনসারশন অর্ডার এবং ডেটার গুণগত মানের প্রয়োজন হয়।
সারাংশ
Map জাভাস্ক্রিপ্টের একটি শক্তিশালী ডেটা স্ট্রাকচার যা key-value pair হিসেবে উপাদান সংরক্ষণ করে। এতে কীগুলো যেকোনো ডেটা টাইপ হতে পারে, এবং এটি ইনসারশন অর্ডার বজায় রাখে। Map-এর সাথে কাজ করার জন্য শক্তিশালী মেথড যেমন set(), get(), has(), delete(), clear() ইত্যাদি রয়েছে, যা ডেটা পরিচালনা এবং ইটারেশনকে সহজ করে তোলে। Object-এর তুলনায়, Map আরও বেশি সুবিধাজনক যখন আপনাকে কীগুলোর গুণগত মান এবং ইনসারশন অর্ডার বজায় রাখতে হয়।
Read more